package com.jlpay.openapi.demo.openmerch.notify;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.jlpay.open.jlpay.sdk.java.model.openmerch.register.AuditDetail;

import java.util.Date;
import java.util.List;

/**
 * @author liuaobo
 * createTime 2024/3/19
 */
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class ApplyResultRecord {
    /**
     * 业务申请编号
     */
    private String applyId;


    /**
     * 机构号
     */
    private String appId;

    /**
     * 审核状态
     * 01：审核通过,
     * 02：审核中，
     * 09：审核驳回
     */
    private String auditStatus;

    /**
     * 审核驳回详情
     */
    private List<AuditDetail> auditDetail;

    /**
     * 审核驳回描述
     */
    private String auditFailure;

    /**
     * 商户号
     */
    private String merchNo;

    /**
     * 协议编号
     */
    private String signId;

    /**
     * 委托合同协议编号
     */
    private String delegationSignId;

    /**
     * 收单合同协议编号
     */
    private String acquiringSignId;

    /**
     * 签约状态
     * 00:未签约
     * 01:已签约
     * 02:签约中
     * 09:签约失败
     */
    private String signStatus;

    /**
     * 授权收款模式下，被授权人的签约状态，枚举：
     * 00：未签约
     * 01：已签约
     * 02：签约中
     * 09：签约失败
     */
    private String signDelegateeStatus;

    /**
     * 授权收款模式下，被授权人的承诺函、电子协议签约链接
     */
    private String signDelegateeUrl;

    /**
     * 协议链接
     */
    private String signUrl;

    /**
     * 终端号
     */
    private String termNo;

    /**
     * 审核时间
     * 该业务审核时间，时间格式“YYYY-MM-DD HH:MM:SS”
     * 商户核心没有该时间，开放平台记录获取到审核状态的时间为准。
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date auditEndTime;

    /**
     * appid绑定结果
     * 01: 成功
     * 02: 处理中
     * 09: 失败
     */
    private String subAppidBindRet;

    /**
     * 绑定结果描述
     */
    private String subAppidBindMsg;

    /**
     * 支付目录绑定结果
     * 01: 成功
     * 02: 处理中
     * 09: 失败
     */
    private String wechatJsapiPathRet;

    /**
     * 支付目录绑定结果描述
     * 01: 成功
     * 02: 处理中
     * 09: 失败
     */
    private String wechatJsapiPathMsg;

    /**
     * 入驻银行合作平台
     * 01: 成功
     * 02: 处理中
     * 09: 失败
     */
    private String coopBankRet;

    /**
     * 入驻结果描述
     */
    private String coopBankMsg;

    public String getApplyId() {
        return applyId;
    }

    public void setApplyId(String applyId) {
        this.applyId = applyId;
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getAuditStatus() {
        return auditStatus;
    }

    public void setAuditStatus(String auditStatus) {
        this.auditStatus = auditStatus;
    }

    public List<AuditDetail> getAuditDetail() {
        return auditDetail;
    }

    public void setAuditDetail(List<AuditDetail> auditDetail) {
        this.auditDetail = auditDetail;
    }

    public String getAuditFailure() {
        return auditFailure;
    }

    public void setAuditFailure(String auditFailure) {
        this.auditFailure = auditFailure;
    }

    public String getMerchNo() {
        return merchNo;
    }

    public void setMerchNo(String merchNo) {
        this.merchNo = merchNo;
    }

    public String getSignId() {
        return signId;
    }

    public void setSignId(String signId) {
        this.signId = signId;
    }

    public String getDelegationSignId() {
        return delegationSignId;
    }

    public void setDelegationSignId(String delegationSignId) {
        this.delegationSignId = delegationSignId;
    }

    public String getAcquiringSignId() {
        return acquiringSignId;
    }

    public void setAcquiringSignId(String acquiringSignId) {
        this.acquiringSignId = acquiringSignId;
    }

    public String getSignStatus() {
        return signStatus;
    }

    public void setSignStatus(String signStatus) {
        this.signStatus = signStatus;
    }

    public String getSignDelegateeStatus() {
        return signDelegateeStatus;
    }

    public void setSignDelegateeStatus(String signDelegateeStatus) {
        this.signDelegateeStatus = signDelegateeStatus;
    }

    public String getSignDelegateeUrl() {
        return signDelegateeUrl;
    }

    public void setSignDelegateeUrl(String signDelegateeUrl) {
        this.signDelegateeUrl = signDelegateeUrl;
    }

    public String getSignUrl() {
        return signUrl;
    }

    public void setSignUrl(String signUrl) {
        this.signUrl = signUrl;
    }

    public String getTermNo() {
        return termNo;
    }

    public void setTermNo(String termNo) {
        this.termNo = termNo;
    }

    public Date getAuditEndTime() {
        return auditEndTime;
    }

    public void setAuditEndTime(Date auditEndTime) {
        this.auditEndTime = auditEndTime;
    }

    public String getSubAppidBindRet() {
        return subAppidBindRet;
    }

    public void setSubAppidBindRet(String subAppidBindRet) {
        this.subAppidBindRet = subAppidBindRet;
    }

    public String getSubAppidBindMsg() {
        return subAppidBindMsg;
    }

    public void setSubAppidBindMsg(String subAppidBindMsg) {
        this.subAppidBindMsg = subAppidBindMsg;
    }

    public String getWechatJsapiPathRet() {
        return wechatJsapiPathRet;
    }

    public void setWechatJsapiPathRet(String wechatJsapiPathRet) {
        this.wechatJsapiPathRet = wechatJsapiPathRet;
    }

    public String getWechatJsapiPathMsg() {
        return wechatJsapiPathMsg;
    }

    public void setWechatJsapiPathMsg(String wechatJsapiPathMsg) {
        this.wechatJsapiPathMsg = wechatJsapiPathMsg;
    }

    public String getCoopBankRet() {
        return coopBankRet;
    }

    public void setCoopBankRet(String coopBankRet) {
        this.coopBankRet = coopBankRet;
    }

    public String getCoopBankMsg() {
        return coopBankMsg;
    }

    public void setCoopBankMsg(String coopBankMsg) {
        this.coopBankMsg = coopBankMsg;
    }
}
